package com.blog.service;

import com.blog.entity.Admin;
import com.blog.entity.Page;
import com.blog.entity.Plate;
import com.blog.entity.Post;
import com.blog.entity.User;

public interface AdminService {
	/**
	 * 查询管理员根据管理员账号和密码
	 * 传入参数：adminName  password
	 * 返回值：admin 通过传入的参数查询是否存在
	 * 根据等级
	 * grade=1  员工    没有管理员管理
	 * grade=2  老板    才有管理员管理
	 * */
	Admin selectAdminByName(Admin admin);
	
	Admin selectAdminByid(Admin admin);
	
	/**
	 * 查询所有的用户
	 * 传入参数：pageNum  pageSize
	 * 返回值：page<User> 通过传入页数和条数返回查询第pageNum页的用户数据
	 * */
	Page<User> selectAllUser(int pageNum,int pageSize);
	
	/**
	 * 查询所有的管理员
	 * 传入参数：pageNum  pageSize
	 * 返回值：page<User> 通过传入页数和条数返回查询第pageNum页的管理员数据
	 * */
	Page<Admin> selectAllAdmin(int pageNum,int pageSize);
	
	/**
	 * 删除某一行的管理员
	 * 传入参数：adminId
	 * 返回值：-1/1   通过传入的id删除该管理员
	 * -1：删除失败管理员
	 * 1：删除成功
	 * */
	int deleteAdminById(Admin admin);
	
	/**
	 * 修改某一行的管理员
	 * 传入参数：adminId
	 * 返回值：-1/1   通过传入的id修改管理员的消息
	 * -1：修改失败
	 * 1：修改成功
	 * */
	int updataAdminById(Admin admin);
	
	/**
	 * 添加某一行的管理员
	 * 传入参数：adminName password adminLevel
	 * 返回值：-1/0/1  通过传入的adminName password查询管理员是否存在、不存在添加
	 * -1：该管理员已存在
	 * 0：添加失败
	 * 1：添加成功
	 * */
	int insertAdmin(Admin admin);
	
	/**
	 * 删除某一行的用户
	 * 传入参数：userId
	 * 返回值：-1/1   通过传入的id删除该用户
	 * -1：删除失败
	 * 1：删除成功
	 * */
	int deleteUserById(User user);
	
	/**
	 * 修改某一行的用户
	 * 传入参数：userId
	 * 返回值：-1/1   通过传入的id修改用户的信息
	 * -1：修改失败
	 * 1：修改成功
	 * */
	int upateAdminById(User user);
	
	/**
	 * 查询所有申请的用户
	 * 传入参数：pageNum pageSize
	 * 返回值：Page<User> 通过传入页数和条数返回查询第pageNum页的审核表中的用户数据
	 * */
	Page<User> selectAllUserByCheck(int pageNum,int pageSize);
	
	/**
	 * 查询所有的板块
	 * 传入参数：pageNum pageSize
	 * 返回值：Page<Plate> 通过传入页数和条数返回查询第pageNum页的板块数据
	 * */
	Page<Plate> selectAllPlate(int pageNum,int pageSize);
	
	/**
	 * 添加版块
	 * 传入参数：plateName plateHeadImg plateState
	 * 返回值：-1/0/1  通过传入的plateName查询版块是否存在、不存在添加
	 * -1：该版块已存在
	 * 0：添加失败
	 * 1：添加成功
	 * */
	int insertPlate(Plate plate);
	
	/**
	 * 删除某一行的板块
	 * 传入参数：plateId
	 * 返回值：-1/1   通过传入的id删除该版块
	 * -1：删除失败
	 * 1：删除成功
	 * */
	int deletePlateById(Plate plate);
	
	/**
	 * 修改某一行的板块
	 * 传入参数：plateId
	 * 返回值：-1/1   通过传入的id修改板块信息
	 * -1：修改失败
	 * 1：修改成功
	 * */
	int updataPlateById(Plate plate);
	
	/**
	 * 查询所有的帖子
	 * 传入参数：pageNum pageSize
	 * 返回值：Page<Post> 通过传入页数和条数返回查询第pageNum页的板块数据
	 * */
	Page<Post> selectPost(int pageNum,int pageSize);
	
	/**
	 * 删除某一行的帖子
	 * 传入参数：postId
	 * 返回值：-1/1   通过传入的id删除该帖子
	 * -1：删除失败
	 * 1：删除成功
	 * */
	int deletePostById(Post post);
	
	/**
	 * 修改某一行的帖子
	 * 传入参数：postId
	 * 返回值：-1/1   通过传入的id修改该帖子
	 * -1：修改失败
	 * 1：修改成功
	 * */
	int updataPostByPostId(Post post);
	
	/**
	 * 查询所有审核的帖子
	 * 传入参数：pageNum pageSize
	 * 返回值：Page<Post> 通过传入页数和条数返回查询第pageNum页的审核表中的用户帖子数据
	 * */
	Page<Post> selectAllPostByCheck(int pageNum,int pageSize);
}
